\section{Pourquoi l'héritage ?}

\textbf{Première solution : Une seule classe.}

\textit{Quelle conclusion par rapport à nos deux préoccupations ?}

Cette solution est mauvaise car elle dupliquerait énormément le code et changerait le code de base.

\textbf{Deuxième solution : Relation type/sous-type.}

\textit{Pourquoi est-il important de conserver la relation de type/sous-type ?}

Cela respecte la cohérence de notre réalisation car un caractère découle d'un type \og générique \fg avec des méthodes prédéfinies. Ne pas la conserver impliquera inévitablement de la duplication de code.

\textit{Quelle conclusion par rapport à nos deux préoccupations ?}

Là encore, la duplication de code est importante.

\textit{Montrer comment utiliser un lien \og a-un \fg pour factoriser le code de la classe PassagerStandard.}

\textbf{Troisième solution : Héritage de classe.}

\textit{Expliquer ce que permet l’héritage de classe.}

Il permet pour une classe de reprendre les attributs et méthodes d'une autre classe.

\textit{Expliquer ce choix qui oblige à remanier le code.}

Ce choix va permettre aux classes correspondant à des caractères d'hériter toutes de la classe abstraite PassagerAbstrait. L'avantage d'une telle configuration est de pouvoir y définir les méthodes qui sont communes à tous les caractères (et qui ne seront donc pas dupliquées puisque définies dans la classe abstraite) et de définir les autres comme abstraites, leur définition se faisant dans les classes filles.
